home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / alpha / modules / lib / powerd_ppc.m < prev    next >
Encoding:
Text File  |  2002-10-28  |  7.2 KB  |  191 lines

  1. OPT    LINK='powerd_ppc.lib',LINK='ppcmath.lib',CPU=603
  2.  
  3. // String/EString functions ////////////
  4. //RPROC DupEStr(a0:PTR TO CHAR)(PTR TO CHAR)
  5. //RPROC DupEStrPooled(a0:PTR,a1:PTR TO CHAR)(PTR TO CHAR)
  6. //RPROC DupStr(a0:PTR TO CHAR)(PTR TO CHAR)
  7. //RPROC DupStrPooled(a0:PTR,a1:PTR TO CHAR)(PTR TO CHAR)
  8. RPROC EStrAdd(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(PTR TO CHAR)
  9. RPROC EStrCopy(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(PTR TO CHAR)
  10. RPROC EStringF(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=NIL:LIST OF LONG)(PTR TO CHAR)
  11. RPROC EStrLen(r3:PTR TO CHAR)(LONG)='lhz\tr3,-2(r3)'
  12. RPROC EStrMax(r3:PTR TO CHAR)(LONG)='lhz\tr3,-4(r3)'
  13. RPROC HiChar(r3:LONG)(LONG)
  14. //RPROC InStr(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=0:LONG)(LONG)
  15. //RPROC MidEStr(a0:PTR TO CHAR,a1:PTR TO CHAR,d1,d0)(PTR TO CHAR)
  16. //RPROC MidStr(string:PTR TO CHAR,str:PTR TO CHAR,start,length)(PTR TO CHAR)
  17. RPROC IsAlpha(r3:LONG)(BOOL)
  18. RPROC IsBin(r3:LONG)(BOOL)
  19. RPROC IsHex(r3:LONG)(BOOL)
  20. RPROC IsNum(r3:LONG)(BOOL)
  21. RPROC LoChar(r3:LONG)(LONG)
  22. RPROC LowerStr(r3:PTR TO CHAR)(PTR TO CHAR)
  23. //RPROC NewEStr(d0:UWORD)(PTR TO CHAR)
  24. RPROC OStrCmp(a:PTR TO CHAR,b:PTR TO CHAR,length=-1)(LONG)
  25. RPROC OStrCmpNC(a:PTR TO CHAR,b:PTR TO CHAR,length=-1)(LONG)
  26. RPROC ReadEStr(fh:BPTR,estr:PTR TO CHAR)(LONG)
  27. //RPROC ReadStr(fh:BPTR,str:PTR TO CHAR)(LONG)
  28. RPROC ReEStr(estr:PTR TO CHAR)
  29. //RPROC RemEStr(a1:PTR TO CHAR)
  30. //RPROC RemStr(a1:PTR TO CHAR)
  31. //RPROC RightEStr(dstr:PTR TO CHAR,sstr:PTR TO CHAR,length)(PTR TO CHAR)
  32. //RPROC RightStr(dstr:PTR TO CHAR,sstr:PTR TO CHAR,length)(PTR TO CHAR)
  33. RPROC SetEStr(estr:PTR TO CHAR,len:LONG)
  34. RPROC StrAdd(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(BOOL)
  35. RPROC StrCmp(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(BOOL)
  36. RPROC StrCmpNC(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(BOOL)
  37. RPROC StrCopy(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=-1)(BOOL)
  38. RPROC StringF(r3:PTR TO CHAR,r4:PTR TO CHAR,r5=NIL:LIST OF LONG)(PTR TO CHAR)
  39. RPROC StrLen(r3:PTR TO CHAR)(LONG)
  40. RPROC TrimStr(r3:PTR TO CHAR)(PTR TO CHAR)
  41. RPROC UpperStr(r3:PTR TO CHAR)(PTR TO CHAR)
  42.  
  43. // added in v0.19alpha7:
  44. RPROC CStrCmp(stra:PTR TO CHAR,strb:PTR TO CHAR)(L)
  45.  
  46. RPROC WriteF(fmt:PTR TO CHAR,list=NIL:LIST OF LONG)
  47. RPROC VWriteF(fmt:PTR TO CHAR,list=NIL:PTR TO LONG)
  48.  
  49. // List functions
  50.  
  51. // Math functions //////////////////////
  52. RPROC Abs(r3:L)(L)
  53. RPROC And(r3:L,r4:L)(L)='and\tr3,r4,r3'
  54. RPROC NAnd(r3:L,r4:L)(L)='nand\tr3,r4,r3'
  55. RPROC BitCount(r3:L)(L)
  56. RPROC BitSize(r3:L)(L)
  57. RPROC EOr(r3:L,r4:L)(L)='xor\tr3,r4,r3'
  58. RPROC XOr(r3:L,r4:L)(L)='xor\tr3,r4,r3'
  59. RPROC HiBit(r3:L)(L)
  60. RPROC LoBit(r3:L)(L)
  61. RPROC Or(r3:L,r4:L)(L)='or\tr3,r4,r3'
  62. RPROC Max(r3:L,r4:L)(L)
  63. RPROC Min(r3:L,r4:L)(L)
  64. RPROC NOr(r3:L,r4:L)(L)='or\tr3,r4,r3'
  65. RPROC Neg(r3:L)(L)='neg\tr3,r3'
  66. RPROC Not(r3:L)(L)='not\tr3,r3'
  67. RPROC Rol(r3:L,r4:L)(L)='rotlw\tr3,r3,r4,0,31'
  68. RPROC Ror(r3:L,r4:L)(L)='neg\tr4,r4\n\trotlw\tr3,r3,r4,0,31'
  69. RPROC Shl(r3:L,r4:L)(L)='slw\tr3,r3,r4'
  70. RPROC Shr(r3:L,r4:L)(L)='srw\tr3,r3,r4'
  71. RPROC Sign(r3:L)(L)
  72. RPROC Mod(r3:L,r4:L)(L)='divw\tr0,r3,r4\n\tmullw\tr0,r0,r4\n\tsubf\tr3,r0,r3'
  73. RPROC Div(r3:L,r4:L)(L)='divw\tr3,r3,r4'
  74. RPROC Mul(r3:L,r4:L)(L)='mulllw\tr3,r3,r4'
  75. RPROC Add(r3:L,r4:L)(L)='add\tr3,r3,r4'
  76. RPROC Sub(r3:L,r4:L)(L)='sub\tr3,r3,r4'
  77.  
  78. // FPU functions ///////////////////////
  79. RPROC Pow(f1:D,f2:D)(D)='bl\t_pow\n\t.extern\t_pow'
  80. RPROC Cos(f1:D)(D)='bl\t_cos\n\t.extern\t_cos'
  81. RPROC Sin(f1:D)(D)='bl\t_sin\n\t.extern\t_sin'
  82. RPROC Tan(f1:D)(D)
  83. RPROC Cosh(f1:D)(D)='bl\t_cosh\n\t.extern\t_cosh'
  84. RPROC Sinh(f1:D)(D)='bl\t_sinh\n\t.extern\t_sinh'
  85. RPROC Tanh(f1:D)(D)='bl\t_tanh\n\t.extern\t_tanh'
  86. RPROC ACos(f1:D)(D)='bl\t_acos\n\t.extern\t_acos'
  87. RPROC ASin(f1:D)(D)='bl\t_asin\n\t.extern\t_asin'
  88. RPROC ATan(f1:D)(D)='bl\t_atan\n\t.extern\t_atan'
  89. RPROC FAbs(f1:D)(D)='fabs\tf1,f1'
  90. RPROC Sqrt(f1:D)(D)='bl\t_sqrt\n\t.extern\t_sqrt'
  91. //RPROC ATanh(f1:D)(D)='bl\t_atanh\n\t.extern\t_atanh'
  92. RPROC Log(f1:D)(D)='bl\t_log10\n\t.extern\t_log10'
  93. RPROC Ln(f1:D)(D)='bl\t_log\n\t.extern\t_log'
  94. //RPROC Log2(f1:D)(D)='bl\t_log2\n\t.extern\t_log2'
  95. //RPROC Int(f1:D)(D)='bl\t_\n\t.extern\t_'
  96. //RPROC Rem(f1:D)(D)='bl\t_\n\t.extern\t_'
  97. RPROC Exp(f1:D)(D)='bl\t_exp\n\t.extern\t_exp'
  98. RPROC FNeg(f1:D)(D)='fneg\tf1,f1'
  99. RPROC FMax(f1:D,f2:D)(D)='fsub\tf0,f1,f2\n\tfsel\tf1,f0,f1,f2'
  100. RPROC FMin(f1:D,f2:D)(D)='fsub\tf0,f1,f2\n\tfsel\tf1,f0,f2,f1'
  101. RPROC F2I(f1:D)(L)='fctiw\tf1,f1\n\tstfd\tf1,-8(r1)\n\tlwz\tr3,-4(r1)'
  102.  
  103. // Intuition support functions /////////
  104. RPROC Mouse()(L)
  105. RPROC MouseX(r3:PTR TO Window)(L)='lha\tr3,14(r3)'
  106. RPROC MouseXY(r3:PTR TO Window)(L,L)='lha\tr4,12(r3)\n\tlha\tr3,14(r3)'
  107. RPROC MouseY(r3:PTR TO Window)(L)='lha\tr3,12(r3)'
  108. RPROC WaitIMessage(r3:PTR TO Window)(L,L,L,L)
  109.  
  110. // Miscellaneous functions /////////////
  111. RPROC CtrlC()(BOOL)
  112. RPROC CtrlD()(BOOL)
  113. RPROC CtrlE()(BOOL)
  114. RPROC CtrlF()(BOOL)
  115.  
  116. RPROC Byte(r3:PTR TO BYTE)(L)='lbz\tr3,0(r3)\n\textsb\tr3,r3'
  117. RPROC Word(r3:PTR TO WORD)(L)='lha\tr3,0(r3)'
  118. RPROC Long(r3:PTR TO LONG)(L)='lwz\tr3,0(r3)'
  119. RPROC UByte(r3:PTR TO BYTE)(L)='lbz\tr3,0(r3)'
  120. RPROC UWord(r3:PTR TO WORD)(L)='lhz\tr3,0(r3)'
  121. RPROC ULong(r3:PTR TO LONG)(L)='lwz\tr3,0(r3)'
  122. RPROC Float(r3:PTR TO FLOAT)(DOUBLE)='lfs\tf1,0(r3)'
  123. RPROC Double(r3:PTR TO DOUBLE)(DOUBLE)='lfd\tf1,0(r3)'
  124.  
  125. RPROC PutByte(r3:PTR TO BYTE,r4:L)='stb\tr4,0(r3)'
  126. RPROC PutWord(r3:PTR TO WORD,r4:L)='sth\tr4,0(r3)'
  127. RPROC PutLong(r3:PTR TO LONG,r4:LONG)='stw\tr4,0(r3)'
  128. RPROC PutFloat(r3:PTR TO LONG,f1:DOUBLE)='stfs\tf1,0(r3)'
  129. RPROC PutDouble(r3:PTR TO LONG,f1:DOUBLE)='stfd\tf1,0(r3)'
  130.  
  131. RPROC ReByte(r3:BYTE)(LONG)='extsb\tr3,r3'
  132. RPROC ReWord(r3:WORD)(LONG)='extsh\tr3,r3'
  133. RPROC ReUByte(r3:UBYTE)(LONG)='andi.\tr3,r3,0xff'
  134. RPROC ReUWord(r3:UWORD)(LONG)='andi.\tr3,r3,0xffff'
  135.  
  136. RPROC Bounds(r3:LONG,r4:LONG,r5:LONG)(LONG)
  137. RPROC Even(r3:LONG)(BOOL)
  138. RPROC Odd(r3:LONG)(BOOL)
  139.  
  140. RPROC Rnd(r3:LONG)(LONG)
  141. RPROC RndQ(r3:LONG)(LONG)
  142.  
  143. EPROC FileLength(name:PTR TO CHAR)(LONG)
  144. EPROC KickVersion(minimal:LONG)(BOOL)
  145.  
  146. RPROC Inp(d1:BPTR)(LONG)
  147. RPROC Out(d1:BPTR,d2:LONG)
  148.  
  149. RPROC RealStr(r3:PTR TO UBYTE,f1:DOUBLE,r4=1)(PTR TO UBYTE)
  150. RPROC RealEStr(r3:PTR TO UBYTE,f1:DOUBLE,r4=1)(PTR TO UBYTE)
  151. RPROC RealVal(r3:PTR TO UBYTE,r4=0)(DOUBLE,LONG)
  152. EPROC Val(s:PTR TO UBYTE,n=0)(LONG,LONG)
  153.  
  154. RPROC AllocVecPooled(a0:APTR,d0:LONG)(PTR)
  155. RPROC FreeVecPooled(a0:APTR,a1:PTR)
  156. RPROC SizePooled(r3:PTR)(LONG)='lwz\tr3,0(r3)'
  157. RPROC AllocVecPooledPPC(a0:APTR,d0:LONG)(PTR)
  158. RPROC FreeVecPooledPPC(a0:APTR,a1:PTR)
  159. RPROC SizePooledPPC(r3:PTR)(LONG)='lwz\tr3,0(r3)'
  160.  
  161. EPROC New(length)(PTR)
  162. EPROC NewR(length)(PTR)
  163. EPROC NewM(length,flags)(PTR)
  164. EPROC Dispose(memptr)
  165.  
  166. RPROC Raise(d0=NIL:LONG,d1=NIL:LONG)
  167. EDEF    exception,exceptioninfo
  168.  
  169. EPROC OpenW(l,t,w,h,i,f,n=NIL,s=NIL,st=1,g=NIL,tags=NIL:PTR TO TagItem)(PTR TO Window)
  170. EDEF    stdrast,stdrast_coloura
  171. EPROC OpenS(w,h,d,t=0,n=NIL,tags=NIL:PTR TO TagItem)(PTR TO Screen)
  172. EPROC CloseW(w:PTR TO Window)
  173. EPROC CloseS(s:PTR TO Screen)
  174.  
  175. RPROC SetStdRast(d1:PTR TO RastPort)(PTR TO RastPort)
  176. RPROC Colour(d0,d1=0)
  177. RPROC Line(d0,d1,d2,d3,d4=-1)
  178. RPROC Plot(d0,d1,d2=-1)
  179. RPROC Box(d0,d1,d2,d3,d4=-1)
  180. RPROC Ellipse(d0,d1,d2,d3,d4=-1)
  181. RPROC Circle(d0,d1,d2,d3=-1)
  182. //RPROC IBox(x,y,w,h,c=-1)
  183. //RPROC TextF(x,y,fmt,args)
  184.  
  185. // Quoted Expression functions /////////
  186. EPROC Eval(r3:PTR)(L)
  187. RPROC MapList(r3:PTR TO LONG,r4:PTR TO LONG,r5:PTR TO LONG,r6:LONG,r7:PTR TO LONG)
  188. RPROC ForAll(r3:PTR TO LONG,r4:PTR TO LONG,r5:LONG,r6:PTR TO LONG)(L)
  189. RPROC Exists(r3:PTR TO LONG,r4:PTR TO LONG,r5:LONG,r6:PTR TO LONG)(L)
  190. RPROC SelectList(r3:PTR TO LONG,r4:PTR TO LONG,r5:PTR TO LONG,r6:LONG,r7:PTR TO LONG)(L)
  191.